The simulation of hair is widely implemented in computer graphics, as hair is an integral part of creating many virtual characters. Many approximations for simulating hair exist, but they typically fail to provide the amount of detail that real hair exhibits. Several applications, such as feature films, aim to capture the high degree of complexity caused by several thousand interacting hair strands. Unfortunately, the massive number of hairs interacting and colliding makes hair simulation on a virtual character one of the most challenging aspects of computer graphics. Even though individual hair dynamics scale well to multiple hairs (as each hair is dynamically uncoupled), accurately simulating many hairs interacting with each other remains a challenge.
Numerous approaches have been developed to manage the complexity of many hairs interacting. Generally, these approaches simulate a smaller set of guide hairs (typically no more than several hundred) that interact with large repulsion forces, interpolating a larger number of hairs for rendering. This leads to very efficient simulation times, but a limited amount of hair detail is captured (especially stray hairs such as the so-called “flyaways”) because, essentially, each guide hair represents hundreds (or even thousands) of actual hairs.
Alternatively, there have been several methods that treat every simulated hair as part of a fluid-like continuum volume. These approaches naturally model hair interaction without explicit collisions. However, intricate features of individual hairs are lost because each hair is part of the continuum.
The foregoing is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admission of prior art.